home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # $Id: bmake,v 1.6 2004/12/27 19:28:48 ton Exp $
- #
- # ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
- #
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public License
- # as published by the Free Software Foundation; either version 2
- # of the License, or (at your option) any later version. The Blender
- # Foundation also sells licenses for use in proprietary software under
- # the Blender License. See http://www.blender.org/BL/ for information
- # about this.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software Foundation,
- # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- #
- # The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- # All rights reserved.
- #
- # The Original Code is: all of this file.
- #
- # Contributor(s): none yet.
- #
- # ***** END GPL/BL DUAL LICENSE BLOCK *****
-
- # detect the system
-
- UNAME=`uname`
- EXT="so";
- if ( test "WIN32" = "$TARGET" ) then
- CC="gcc";
- CFLAGS="-funsigned-char -O2";
-
- LD="ld";
- LDFLAGS="-Bshareable -lm";
- elif ( test $UNAME = "IRIX64" -o $UNAME = "IRIX" ) then
- CC="cc";
- CFLAGS="-KPIC -O2 -mips3";
-
- LD="ld";
- LDFLAGS="-shared -U";
- elif ( test $UNAME = "FreeBSD" ) then
- CC="gcc";
- CFLAGS="-fPIC -funsigned-char -O2";
-
- LD="ld";
- LDFLAGS="-Bshareable";
- elif ( test $UNAME = "OpenBSD" ) then
- CC="gcc";
- CFLAGS="-fPIC -funsigned-char -O2";
-
- LD="ld";
- LDFLAGS="-Bshareable";
- elif ( test $UNAME = "Linux" ) then
- CC="gcc";
- CFLAGS="-fPIC -funsigned-char -O2";
-
- LD="ld";
- LDFLAGS="-Bshareable";
- elif ( test $UNAME = "SunOS" ) then
- CC="cc";
- CFLAGS="-O";
-
- LD="ld";
- LDFLAGS="-r";
- elif ( test $UNAME = "Darwin" ) then
- CC="cc";
- CFLAGS="-fPIC -funsigned-char -O2 -fno-common";
- LD="cc";
- LDFLAGS="-flat_namespace -bundle -bundle_loader ../../blender.app/Contents/MacOS/blender -lm";
- EXT="so";
- fi
-
- if ( test "$#" = "1" ) then
- if ( test -f $1 ) then
- BASE_FILE=`echo $1 | sed -e "1 s/\.c//g"`;
- else
- BASE_FILE=$1;
- fi
-
- CFILE="$BASE_FILE.c"
- OFILE="$BASE_FILE.o"
- SOFILE="$BASE_FILE.$EXT"
- else
- if ( test -f $1$2 ) then
- BASE_FILE=`echo $2 | sed -e "1 s/\.c//g"`;
- else
- BASE_FILE=$2;
- fi
-
- CFILE="$1$BASE_FILE.c"
- if (test "$TARGET" = "WIN32" ) then
- DLLFILE="$BASE_FILE.dll";
- fi
- OFILE="$BASE_FILE.o"
- SOFILE="$BASE_FILE.$EXT"
- fi
-
- INCLUDES=
- if ( test -f plugin.h ) then
- INCLUDES=-I.;
- elif ( test -f "include/plugin.h" ) then
- INCLUDES=-Iinclude/
- elif ( test -f "../plugin.h" ) then
- INCLUDES=-I..;
- elif ( test -f "../include/plugin.h" ) then
- INCLUDES=-I../include
- else
- echo "Couldn't find plugin.h";
- exit;
- fi
-
- LIBM=`fgrep "#include <math.h>" $CFILE`
- LIBC=`fgrep "#include <std" $CFILE`
-
- LIBS=
-
- if ( test -n "$LIBM" ) then
- LIBS="$LIBS -lm";
- fi
- if ( test -n "$LIBC" ) then
- LIBS="$LIBS -lc";
- fi
-
- echo "$CC $CFLAGS -c $CFILE $INCLUDES"
- $CC $CFLAGS -c $CFILE $INCLUDES
-
- if ( test "$?" != "0") then
- echo "Compile error";
- exit;
- fi
-
- echo "$LD $LDFLAGS $OFILE -o $SOFILE $LIBS"
- $LD $LDFLAGS $OFILE -o $SOFILE $LIBS
-
- if ( test "$?" != "0") then
- echo "Link error";
- exit;
- fi
-